#ifndef NODO_ARBOL_HUFFMAN_H_
#define NODO_ARBOL_HUFFMAN_H_

class NodoArbolHuffman {

protected:
	NodoArbolHuffman* padre;
	NodoArbolHuffman* izquierda;
	NodoArbolHuffman* derecha;
	unsigned int numero;
	unsigned int frecuencia;
	unsigned int caracter;

public:
	// Cada nodo tiene incialmente un padre, numero de orden y un caracter asignado.
	// No tiene hijos asignados obviamente, y tiene frecuencia 0.
	NodoArbolHuffman(NodoArbolHuffman* padre, unsigned int numero, const unsigned int caracter);
	NodoArbolHuffman* getPadre();
	void setPadre(NodoArbolHuffman* padre);
	NodoArbolHuffman* getHijoIzquierda();
	void setHijoIzquierda(NodoArbolHuffman* hijo);
	NodoArbolHuffman* getHijoDerecha();
	void setHijoDerecha(NodoArbolHuffman* hijo);
	unsigned int getCaracter();
	unsigned int getNumero();
	void setNumero(unsigned int numero);
	void incrementarFrecuencia();
	unsigned int getFrecuencia();
};

#endif /* NODO_ARBOL_HUFFMAN_H_ */
